The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the inventors hereof, to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
The present disclosure relates generally to data decoding, and more particularly to one-read and two-read decoders for data encoded with a low density parity check (LDPC) encoder.
LDPC codes and decoders that are used to decode LDPC codes may be used in numerous applications and devices. For example, data storage, satellite communications, wireless communications, wire-line communications, and power-line communications are applications that may each use LDPC codes and LDPC decoders. Devices such as digital camera flash memory storage, satellites, mobile phones, and other mobile devices may also each use LDPC codes and LDPC decoders.
LDPC codes may be used for correcting errors in information transmitted in a noisy communications or data storage channel. The information may be encoded (by a LDPC encoder) prior to transmission and then subsequently decoded (by a LDPC decoder) when received. The performance capability of an LDPC coding scheme is often described by the code's performance curve. The performance curve is a plot of signal-to-noise ratios (SNRs) vs. Bit Error Rate (BER), or equivalently Sector Error Rate (SER). LDPC codes are one of the best performing error correcting codes, along with Turbo codes, for use in correcting errors in information transmitted on communication and data storage channels.
Previous hard decoding LDPC algorithms typically decide whether to flip a bit or symbol based on whether a given number of checks are unsatisfied. Previous LDPC algorithms typically do not use information related to prior bit-flipping or toggling, and they typically do not use information on the original or previous state of a symbol to decide whether to flip or toggle the symbol.